import json
import pandas as pd
import plotly.express as px

# 探索数据的结构

readable_file = r'D:\ui\scatter_diagram\data\123.json'
# with open(readable_file,'w') as f:
#     json.dump(all_eq_data,f,indent=4)

with open(readable_file, 'r') as f:
    all_eq_data = json.load(f)

all_eq_dicts = all_eq_data['features']

urls, resq_times, resp_times, times, sizes = [], [], [], [], []
for eq_dict in all_eq_dicts:
    url = eq_dict['properties']['url']
    resq_time = eq_dict['properties']['felt']
    resp_time = eq_dict['properties']['cdi']
    time = eq_dict['properties']['mmi']  # 经度
    size = eq_dict['properties']['alert']
    urls.append(url)
    resq_times.append(resq_time)
    resp_times.append(resp_time)
    times.append(time)
    sizes.append(size)

data = pd.DataFrame(
    data=zip(urls, resp_times, resq_times, times, sizes), columns=['url', '请求时间', '响应时间', '耗时', '流耗']
)
data.head()

fig = px.scatter(
    data,
    x='请求时间',
    y='响应时间',
    # range_x=[-200,200],
    # range_y=[-90,90],
    width=1300,
    height=1000,
    title='xxx小程序数据',
    size='流耗',
    size_max=20,  # size_max为图表中圆点的大小
    color='流耗',
    opacity=0.5,
    text='耗时',
    hover_name='url'
)

# fig.write_html('global_earthquakes.html')  # 保存散点图到当前目录下
fig.show()

# http://t.zoukankan.com/traditional-p-12409410.html
# https://blog.csdn.net/weixin_52136304/article/details/123452323


# =======================================================================================================================

# filename = r'D:\ui\scatter_diagram\data\readable_eq_data.json'
# with open(filename) as f:
#     all_eq_data = json.load(f)
#
# # readable_file = 'D:/ui/scatter_diagram/data/readable.json'
# # with open(readable_file,'w') as f:
# #     json.dump(all_eq_data,f,indent=4)
#
# all_eq_dicts = all_eq_data['features']
#
# mags,sigs,titles,lons,lats = [],[],[],[],[]
# for eq_dict in all_eq_dicts:
#     mag = eq_dict['properties']['mag']
#     sig = eq_dict['properties']['sig']
#     title = eq_dict['properties']['title']
#     lon = eq_dict['geometry']['coordinates'][0] #经度
#     lat = eq_dict['geometry']['coordinates'][1]
#     mags.append(mag)
#     sigs.append(sig)
#     titles.append(title)
#     lons.append(lon)
#     lats.append(lat)
#
#
# data = pd.DataFrame(
#     data=zip(lons,lats,titles,mags,sigs),columns=['经度','纬度','位置','震级','数字']
# )
# data.head()
#
#
# fig = px.scatter(
#     data,
#     x='经度',
#     y='纬度',
#     # range_x=[-200,200],
#     # range_y=[-90,90],
#     width=1200,
#     height=800,
#     title='全球地震散点图',
#     size='震级',
#     size_max=20,  # size_max为图表中圆点的大小
#     color='震级',
#     opacity=0.5,
#     text='数字',
#     hover_name='位置'
# )
#
# # fig.write_html('global_earthquakes.html')  # 保存散点图到当前目录下
# fig.show()



data = {
    "appname": "xxxxxxxx",
    "total_page": [
        {
            "children": {
                "time": [{
                    "a": "1",
                    "b": "2"
                },
                    {
                        "a": "1",
                        "b": "2"
                    }],
            },

        },

    ]

}


data_s = {
    "appname": "xxxxxxxx",
    "total_page": [
        {
            "children": [{
                "url": "xxxxxx",
                "请求时间":"xxxxx",
                "响应时间":"xxxxx",
                "耗时":"xxxx",
                "流耗":"xxxx"
            },
            {
                "url": "xxxxxx",
                "请求时间":"xxxxx",
                "响应时间":"xxxxx",
                "耗时":"xxxx",
                "流耗":"xxxx"
            }
            ],
        },
        {
            "children": [{
                "url": "xxxxxx",
                "请求时间":"xxxxx",
                "响应时间":"xxxxx",
                "耗时":"xxxx",
                "流耗":"xxxx",
            },
              {
            "url": "xxxxxx",
            "请求时间":"xxxxx",
            "响应时间":"xxxxx",
            "耗时":"xxxx",
            "流耗":"xxxx"
            }
            ],

        },

    ]
}